AWS re:Invent2013参加レポート #23 Redshiftデモ(Cross-Region Snapshot あり)
はじめに
Joseさんに続き、ドイツのエバンジェリスト Steffen KrauseさんがRedshiftの紹介とデモをしてくれました。
Redshiftの紹介
AWS風のデータウェアハウスということで、簡単に作れて、スケールアップも簡単、とっても低価格で、とっても高性能、一般的なツールも簡単につかえます。といいことづくめです。
カラムストレージ、データ圧縮、ハードウェア的な最適化などが行なわれていることで高性能を実現しているとのことです。
また外側のインターフェースはPostgres互換で作られているため、ODBCやJDBC、Postgres 8.x ドライバであれば利用できます。当然中身はまったく違うのであくまで外側のみです
データロードはS3、DynamoDBよりcopyコマンドを用いて直接行なえます。並列ロードを行なうことで、高速にロードができますが、copyコマンドを使うと圧縮や並列ロードなどを全部自動でやってくれるので、これを使うべきとのことでした
データは自動的に圧縮されます。だいたい4から8倍程度の圧縮率をえられます。適切なデータと暗号化方式であれば20倍を越える場合もあるとのことです。analyze compressionコマンドを用いることで詳細を確認できます。
Redshiftのアーキテクチャ
leaderノードとcomputeノードにわかれます。postgresインターフェースをもっているのはLeaderノードになります。複数台のcomputeノードがいますが一台でも可能です。クエリは複数computeノードで並列で実行されます。また、ノードの数をリサイズすることも可能です。
最後に言っていたのですが、月に一度の会計処理を行なう場合、以下のようにシステムを作ることでコスト削減が出来るといってました
- Redshiftを建てる
- データをロードする
- 会計処理をおこなう
- おわったらスナップショットを取得
- Redshiftを廃棄する
で、翌月末には
- スナップショットを元にRedshiftを作成
- 差分のデータをロードする
- 会計処理をおこなう
- おわったらスナップショットを取得(差分のみになる)
- Redshiftを廃棄する
ということで、常時起動ではなく、必要な時にのみ起動することが可能というのがRedshiftのよいところだと言っていました。Data Warehouse as a Serviceですね。
Redshiftのデモ
Redshift構築から、どう使うかまで一通り見せてくれたのですが、二つにしぼりたいとおもいます。
Jasperとの連携
Amazon Market PlaceからJasper softの レポーティングツールのAMIを購入して、その場でRedshiftと連携していました。下は出生数のデータから、父親の年齢のグラフを出したグラフです。
インスタンス起動からわずか数分でこういうことが出来るのを目の前で見せられるのは衝撃ですね。
このデータをみているときに気づいたのですが、10歳で父親になっている人が10人ほどいました。これも衝撃でした。
Cross-Region スナップショット
今回のre:Inventで発表されたRedshift Cross-region snapshot、スナップショットをリージョンまたぎで作成する機能です。これもデモしてくれました。こちらの画面でリージョンコピーの選択肢がでてくるそうです。
EUからus-eastリージョンにコピーをしていたとおもいますが、セミナー後にどのくらい速度が出るのか質問してみたところ「Let me show it.」と画面を見せてくれました。Krauseさん親切です。ありがとうございました。
56GB/s 速すぎ!とびっくりしたのですが、ちょっと考えるとデータセットが250GBで10時間かかるということで56Mb/sが正しい速度だとおもいます。それでも十分速いです。東京/シンガポール間、東京/オレゴンの速度、誰かためしてくれないでしょうか。
さいごに
はじめてRedshiftを勉強する人は是非みるべきセッションです。非常にコンパクトにまとまっていいました。もし可能であれば、日本のエバンジェリストの方に是非再演してもらいたいです。是非お願いします。